import 'package:flutter/services.dart';

import '../tx_device_manager.dart';

class TXDeviceManagerOhosImpl extends TXDeviceManager {

  MethodChannel _channel;
  TXDeviceManagerOhosImpl(this._channel);

  @override
  Future<int> switchCamera(bool frontCamera) {
    return _channel.invokeMethod('switchCamera', frontCamera).then((value) => value??0);
  }

  @override
  Future<int> setAudioRoute(TXAudioRoute route) {
    return _channel.invokeMethod('setAudioRoute', route.index).then((value) => value??0);
  }

  @override
  int enableCameraAutoFocus(bool enabled) {
    // TODO: implement enableCameraAutoFocus
    throw UnimplementedError();
  }

  @override
  int enableCameraTorch(bool enabled) {
    // TODO: implement enableCameraTorch
    throw UnimplementedError();
  }

  @override
  int enableFollowingDefaultAudioDevice(TXMediaDeviceType type, bool enable) {
    // TODO: implement enableFollowingDefaultAudioDevice
    throw UnimplementedError();
  }

  @override
  int getApplicationMuteState() {
    // TODO: implement getApplicationMuteState
    throw UnimplementedError();
  }

  @override
  int getApplicationPlayVolume() {
    // TODO: implement getApplicationPlayVolume
    throw UnimplementedError();
  }

  @override
  double getCameraZoomMaxRatio() {
    // TODO: implement getCameraZoomMaxRatio
    throw UnimplementedError();
  }

  @override
  TXDeviceInfo getCurrentDevice(TXMediaDeviceType type) {
    // TODO: implement getCurrentDevice
    throw UnimplementedError();
  }

  @override
  bool getCurrentDeviceMute(TXMediaDeviceType type) {
    // TODO: implement getCurrentDeviceMute
    throw UnimplementedError();
  }

  @override
  int getCurrentDeviceVolume(TXMediaDeviceType type) {
    // TODO: implement getCurrentDeviceVolume
    throw UnimplementedError();
  }

  @override
  List<TXDeviceInfo> getDevicesList(TXMediaDeviceType type) {
    // TODO: implement getDevicesList
    throw UnimplementedError();
  }

  @override
  bool isAutoFocusEnabled() {
    // TODO: implement isAutoFocusEnabled
    throw UnimplementedError();
  }

  @override
  bool isFrontCamera() {
    // TODO: implement isFrontCamera
    throw UnimplementedError();
  }

  @override
  int setApplicationMuteState(bool mute) {
    // TODO: implement setApplicationMuteState
    throw UnimplementedError();
  }

  @override
  int setApplicationPlayVolume(int volume) {
    // TODO: implement setApplicationPlayVolume
    throw UnimplementedError();
  }


  @override
  void setCameraCaptureParam(TXCameraCaptureParam params) {
    // TODO: implement setCameraCaptureParam
  }

  @override
  int setCameraFocusPosition(double x, double y) {
    // TODO: implement setCameraFocusPosition
    throw UnimplementedError();
  }

  @override
  int setCameraZoomRatio(double ratio) {
    // TODO: implement setCameraZoomRatio
    throw UnimplementedError();
  }

  @override
  int setCurrentDevice(TXMediaDeviceType type, String deviceId) {
    // TODO: implement setCurrentDevice
    throw UnimplementedError();
  }

  @override
  int setCurrentDeviceMute(TXMediaDeviceType type, bool mute) {
    // TODO: implement setCurrentDeviceMute
    throw UnimplementedError();
  }

  @override
  int setCurrentDeviceVolume(TXMediaDeviceType type, int volume) {
    // TODO: implement setCurrentDeviceVolume
    throw UnimplementedError();
  }

  @override
  int setDeviceObserver(TXDeviceObserver? observer) {
    // TODO: implement setDeviceObserver
    throw UnimplementedError();
  }

  @override
  int startCameraDeviceTest(int viewId) {
    // TODO: implement startCameraDeviceTest
    throw UnimplementedError();
  }

  @override
  int startMicDeviceTest(int interval) {
    // TODO: implement startMicDeviceTest
    throw UnimplementedError();
  }

  @override
  int startMicDeviceTestAndPlayback(int interval, bool playback) {
    // TODO: implement startMicDeviceTestAndPlayback
    throw UnimplementedError();
  }

  @override
  int startSpeakerDeviceTest(String filePath) {
    // TODO: implement startSpeakerDeviceTest
    throw UnimplementedError();
  }

  @override
  void stopCameraDeviceTest() {
    // TODO: implement stopCameraDeviceTest
  }

  @override
  void stopMicDeviceTest() {
    // TODO: implement stopMicDeviceTest
  }

  @override
  void stopSpeakerDeviceTest() {
    // TODO: implement stopSpeakerDeviceTest
  }


}